home *** CD-ROM | disk | FTP | other *** search
/ Amoszine 4 / Amoszine 4 (Disk 2 of 3).adf / 3D_MENUS / 3d_menus_source.lha / 3D_METER_Proc.amos / 3D_METER_Proc.amosSourceCode
Encoding:
AMOS Source Code  |  1992-02-26  |  2.5 KB  |  145 lines

  1. '
  2. '********************************************
  3. '
  4. '                3D METER    
  5. '            ----------------- 
  6. '
  7. '         By Malcolm Lavery 1994 
  8. '
  9. '********************************************
  10. '
  11. X=20
  12. Y=10
  13. _VALUE=0
  14. '
  15. Screen Open 0,640,256,16,Hires
  16. Palette $0,$FFF,,,$CCC,$EEE,$999,$333,$88F,$A00,$800,$A0,$80,$A,$8
  17. Curs Off : Cls 0 : Flash Off 
  18. Limit Mouse 0,0 To 640,500
  19. '
  20. Screen Open 1,640,256,16,Hires
  21. Palette $0,$FFF,,,$CCC,$EEE,$999,$333,$88F,$A00,$800,$A0,$80,$A,$8
  22. Curs Off : Cls 0 : Flash Off 
  23. Double Buffer 
  24. Autoback 0
  25. Bob Update Off 
  26. Limit Mouse 0,0 To 640,500
  27. '
  28. Screen 0
  29. '
  30. X Mouse=200
  31. Y Mouse=100
  32. BCOL=6
  33. FCOL=9
  34. '
  35. Do 
  36.    '
  37.    XSIZE=X Screen(0,X Mouse)
  38.    YSIZE=Y Screen(0,Y Mouse)
  39.    '
  40.    If XSIZE>X and YSIZE>Y
  41.       '
  42.       If Mouse Key=1
  43.          FCOL=Rnd(16)
  44.       End If 
  45.       If Mouse Key=2
  46.          BCOL=Rnd(16)
  47.       End If 
  48.       '
  49.       _3D_DISPLAY[0,0,639,255,0,6]
  50.       '
  51.       Ink 0,6
  52.       Text 150,240,"ANY SIZE METER CAN BE PRODUCED,MOVE MOUSE"
  53.       Text 150,250," AND IN ANY COLOURS,CLICK MOUSE BUTTONS"
  54.       '
  55.       _3D_METER[X,Y,XSIZE,YSIZE,_VALUE,FCOL,BCOL]
  56.       '
  57.       Screen Copy 0 To 1
  58.       Screen Swap 
  59.       Wait Vbl 
  60.       '
  61.       Add _VALUE,2
  62.       '
  63.    End If 
  64.    '
  65. Loop 
  66. '
  67. Procedure _3D_METER[X,Y,WIDTH,HEIGHT,_VALUE,FCOL,BCOL]
  68.    '
  69.    '
  70.    '
  71.    LE=Text Length(TEX$)
  72.    X_TEXT=X+WIDTH/2
  73.    Y_TEXT=Y+HEIGHT/2+3
  74.    '
  75.    '
  76.    HILIGHT=5
  77.    SHADOW=7
  78.    '
  79.    '
  80.    Ink HILIGHT
  81.    Draw X,Y To X+WIDTH,Y
  82.    Draw X,Y To X,Y+HEIGHT
  83.    '
  84.    Ink SHADOW
  85.    Draw X+WIDTH,Y+1 To X+WIDTH,Y+HEIGHT
  86.    Draw X+WIDTH,Y+HEIGHT To X,Y+HEIGHT
  87.    '
  88.    '
  89.    HILIGHT=7
  90.    SHADOW=5
  91.    '
  92.    '
  93.    Ink HILIGHT
  94.    Draw X+1,Y+1 To X+WIDTH-1,Y+1
  95.    Draw X+1,Y+1 To X+1,Y+HEIGHT-1
  96.    '
  97.    Ink SHADOW
  98.    Draw X+WIDTH-1,Y To X+WIDTH-1,Y+HEIGHT-1
  99.    Draw X+WIDTH-1,Y+HEIGHT-1 To X-1,Y+HEIGHT-1
  100.    '
  101.    Ink BCOL
  102.    Bar X+2,Y+2 To X+WIDTH-2,Y+HEIGHT-2
  103.    '
  104.    '
  105.    If _VALUE+X<X+(WIDTH-5) and _VALUE>0
  106.       Ink FCOL
  107.       Bar X+2,Y+2 To X+2+_VALUE,Y+HEIGHT-2
  108.    Else 
  109.       Ink FCOL
  110.       Bar X+2,Y+2 To X+WIDTH-3,Y+HEIGHT-2
  111.    End If 
  112.    '
  113.    '  
  114. End Proc
  115. '
  116. Procedure _3D_DISPLAY[X,Y,WIDTH,HEIGHT,IN_OUT,_FILL]
  117.    '
  118.    '
  119.    '
  120.    If IN_OUT=0
  121.       HILIGHT=5
  122.       SHADOW=7
  123.    End If 
  124.    '
  125.    '
  126.    If IN_OUT=1
  127.       HILIGHT=7
  128.       SHADOW=5
  129.    End If 
  130.    '
  131.    '
  132.    Ink HILIGHT
  133.    Draw X,Y To X+WIDTH,Y
  134.    Draw X,Y To X,Y+HEIGHT
  135.    '
  136.    Ink SHADOW
  137.    Draw X+WIDTH,Y To X+WIDTH,Y+HEIGHT
  138.    Draw X+WIDTH,Y+HEIGHT To X,Y+HEIGHT
  139.    '
  140.    Ink _FILL
  141.    Bar X+1,Y+1 To X+WIDTH-1,Y+HEIGHT-1
  142.    '
  143.    '
  144.    '
  145. End Proc